*NW 44 - OpenTransport Ç…ÇÊÇËÉVÉäÉAÉãÅEÉ|Å[ÉgÇà I/O ÉnÉìÉhÉVÉFÉCÉN

(96 îN 11 åé 27 ì˙)

Q: OpenTransport Ç…ÇÊÇËÉVÉäÉAÉãÅEÉ|Å[ÉgÇà I/O ÉnÉìÉhÉVÉFÉCÉNÇÕÅAÇ«ÇÃÇÊǧDžéwíËǵÅAÇ«ÇÃÇÊǧDžêßå‰Ç∑ÇÍnjǢǢÇÃÇ≈Ç∑Ç©ÅHÉIÉvÉVÉáÉìÇÃê›íËÇ™ÇÊÇ≠ÇÌÇ©ÇËÇ‹ÇπÇÒÅB

A: OpenTransport ÉlÉCÉeÉBÉuÅEÉCÉìÉ^ÉtÉFÅ[ÉXÇ™íÒãüÇ∑ÇÈ SRL_OPT_HANDSHAKE ÉIÉvÉVÉáÉìÇégǧÇΔÅAÇ≥NjǥNjǻï˚ñ@Ç≈ÉVÉäÉAÉãÅEÉ|Å[ÉgÇÃÉnÉìÉhÉVÉFÉCÉNÇÉJÉXÉ^É}ÉCÉYÇ≈Ç´Ç‹Ç∑ÅBÇΩÇΔǶnjÅAì¸óÕÉnÉìÉhÉVÉFÉCÉNÇ™ CTS âÒê¸Ç‹ÇΩÇÕ XON/OFF ÉVÅ[ÉPÉìÉXÇ…ÇÊǡǃêßå‰Ç≥ÇÍÇÈÇÊǧDžÉäÉNÉGÉXÉgÇ∑ÇÈDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅBÉnÉìÉhÉVÉFÉCÉNÇÃìÆçÏÇÕÅASRL_OPT_HANDSHAKE ÉIÉvÉVÉáÉìÇégǡǃìnÇ≥ÇÍÇÈ 4 ÉoÉCÉgÇÃïÑçÜǻǵêÆêîílÇégǡǃéwíËǵNjÇ∑ÅB

+=====-========-========-========-========-========-========-========-========+
|ÉrÉbÉg|   7    |   6    |   5    |   4    |   3    |   2    |   1    |   0    |
|ÉoÉCÉg|        |        |        |        |        |        |        |        |
|======+========+========+=====================================================|
|  0   |        |        |        |        |        |        |        |        |
|------+-----------------------------------------------------------------------|
|  1   |        |        |        |        |  DTR   |  CTS   |XON/OFF |XON/OFF |
|      |        |        |        |        |  èoóÕ  |  ì¸óÕ  |  ì¸óÕ  |  èoóÕ  |
|------+-----------------------------------------------------------------------|
|  2   |                         XON ï∂éö                                      |
|------+-----------------------------------------------------------------------|
|  3   |                         XOff ï∂éö                                     |
+==============================================================================+

êÆêîÇÃè„à ÉèÅ[Éh (16 ÉrÉbÉg) ÇÕÅA1 ǬNjÇΩÇÕï°êîÇÃÅAéüÇÃÇÊǧǻÉrÉbÉgÅEÉZÉbÉgÇä‹ÇfiÉrÉbÉgÉ}ÉbÉvÇ≈Ç∑ÅB

        kOTSerialXOnOffInputHandshake   = 1
        kOTSerialXOnOffOutputHandshake  = 2
        kOTSerialCTSInputHandshake      = 4
        kOTSerialDTROutputHandshake     = 8

ç≈â∫à Ç©ÇÁ 2 Ǭñ⁄ÇÃÉoÉCÉgÇÕ XOn ï∂éöÇÃílÇ≈ÅAç≈â∫à ÉoÉCÉgÇÕ XOff ï∂éöÇÃílÇ≈Ç∑ÅB

DZÇÍÇÁÇÃílÇ™ 0 Ç≈ÅAXOnOff ÉnÉìÉhÉVÉFÉCÉNÇ™ÉäÉNÉGÉXÉgÇ≥ÇÍǃǢÇÈÇΔÇ´ÇÕÅAXOff Ç…ÇÕ ^SÅAXOn Ç…ÇÕ ^Q ÇΔǢǧÉfÉtÉHÉãÉgílÇ™égÇÌÇÍÇ‹Ç∑ÅB

OpenTptSerial.h Ç≈íËã`Ç≥ÇÍǃǢÇÈÅASerialHandshakeData(type, onChar, offChar) ÇΔǢǧÉCÉìÉâÉCÉìä÷êî (C ÉÜÅ[ÉUÇÃèÍçáÇÕ #define) ǙdžÇËÅADZÇà 4 ÉoÉCÉgÇÃílÇçÏê¨Ç∑ÇÈÇΩÇflÇ…égǧDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅBDZÇÃÉIÉvÉVÉáÉìÇÃÉfÉtÉHÉãÉgílÇÕÉnÉìÉhÉVÉFÉCÉNǻǵÇ≈Ç∑ÅB

ÇΩÇΔǶnjÅAXON/XOFF ì¸óÕÉnÉìÉhÉVÉFÉCÉNÇóLå¯Ç…ǵÅAXON ï∂éöÇΔǵǃÅA^Q ÇÃë„ÇÌÇËÇ… ^T ÇégǧÇÊǧDžéwíËÇ∑ÇÈÇΔÇ´ÇÕÅAéüÇÃÇÊǧǻÉIÉvÉVÉáÉìç\ë¢ëÃÇçÏê¨ÇµÇ‹Ç∑ÅB

    TOption     opt;

    opt.len     = kOTFourByteOptionSize;
    opt.level   = XTI_GENERIC;

    opt.name    = SERIAL_OPT_HANDSHAKE;
    opt.value   = OTSerialHandshakeData (kOTSerialXOnOffInputHandshake,
                                         ('T' & ~0x40),
                                      // í èÌÇÕ kOTSerialDefaultOnChar
                                         kOTSerialDefaultOffChar);

I_SetSerialXOffState Ioctl ÉRÉ}ÉìÉhÇégǡǃÅAÉVÉäÉAÉãì¸óÕÉ|Å[ÉgÇà XOFF ÉXÉeÅ[É^ÉXÇêßå‰Ç∑ÇÈDZÇΔLJÇ≈Ç´Ç‹Ç∑ÅB0 ÇéwíËÇ∑ÇÈÇΔÅAXOFF ÉXÉeÅ[É^ÉXÇÕñ≥èåèÇ…ÉNÉäÉAÇ≥ÇÍÅA1 ÇéwíËÇ∑ÇÈÇΔÅAXOFF ÉXÉeÅ[É^ÉXÇÕñ≥èåèÇ…ê›íËÇ≥ÇÍÇ‹Ç∑ÅB

    OTIoctl(theSerialEndpoint, I_SetSerialXOffState, 1);    // XOFF ÇÃÉXÉeÅ[É^ÉXÇ ON Ç…ê›íË

I_SetSerialXOn Ioctl ÇégǧÇΔÅAÉVÉäÉAÉãÅEÉ|Å[ÉgÇÕ XON ï∂éöÇëóêMÇ∑ÇÈÇÊǧDžǻÇËÇ‹Ç∑ÅB0 ÇéwíËÇ∑ÇÈÇΔÅAXOFF ÉXÉeÅ[É^ÉXÇ™ê›íËÇ≥ÇÍǃǢÇÈÇΔÇ´ÇæÇØÅAXON ï∂éöÇ™ëóêMÇ≥ÇÍÅA1 ÇéwíËÇ∑ÇÈÇΔÅAñ≥èåèÇ…ï∂éöÇ™ëóêMÇ≥ÇÍÇ‹Ç∑ÅB

    OTIoctl(theSerialEndpoint, I_SetSerialXOn, 1);          // ñ≥èåèÇ… XON ÇëóêM

ãtÇ…ÅAI_SetSerialXOff Ioctl ÇégǧÇΔÅAÉVÉäÉAÉãÅEÉ|Å[ÉgÇÕ XOFF ï∂éöÇëóêMÇ∑ÇÈÇÊǧDžǻÇËÇ‹Ç∑ÅB0 ÇéwíËÇ∑ÇÈÇΔÅAXON ÉXÉeÅ[É^ÉXÇ™ê›íËÇ≥ÇÍǃǢÇÈÇΔÇ´ÇæÇØÅAXOFF ï∂éöÇ™ëóêMÇ≥ÇÍÅA1 ÇéwíËÇ∑ÇÈÇΔÅAñ≥èåèÇ…ï∂éöÇ™ëóêMÇ≥ÇÍÇ‹Ç∑ÅB

    OTIoctl(theSerialEndpoint, I_SetSerialXOff, 1);         // ñ≥èåèÇ… XOFF ÇëóêM

--Vinnie Moscaritolo
devsupport@apple.com


[ Technical Q&A's : Communications & Collaboration : Networking : NW44 ]